package com.erlang4j.internal.exceptions;

/**
 * This is the list of constants that are used by the exceptions. They correspond to lines in the Erlang4J.properties
 * file.
 * 
 * <p>
 * Design Notes
 * <ul>
 * <li>These could easily have been derived from the exception class name. However should this ever need to be
 * obfuscated the class name will change, and the exceptions would stop obfuscation being easily doable
 * <li>The {@link Erlang4JPropertiesTest} checks that these are set up properly
 * </ul>
 * 
 * @author Phil Rice
 */
public class Erlang4jExceptionConstants {

	public final static String keyNotFoundExceptionKey = "erlang4j.exception.keyNotFound";
	public final static String dataTypeCastExceptionKey = "erlang4j.exception.dataTypeCast";
	public final static String outOfRangeExceptionKey = "erlang4j.exception.outOfRange";
	public final static String unexpectedTokenKey = "erlang4j.exception.unexpectedToken";
	public final static String malformedPatternKey = "erlang4j.exception.malformedPattern";
	public final static String unexpectedEndOfTokensKey = "erlang4j.exception.unexpectedEndOfTokens";
	public static final String unexpectedParameterExceptionKey = "erlang4j.exception.unexpectedParameters";
	public static final String unhandledMessageExceptionKey = "erlang4j.exception.unhandledMessage";
	public static final String cannotConnectToVmExceptionKey = "erlang4j.exception.cannotConnectToVm";
	public static final String cannotSendExceptionKey = "erlang4j.exception.cannotSendException";
	public static final String cannotReceiveExceptionKey = "erlang4j.exception.cannotReceiveException";
	public static final String invalidReplyExceptionKey = "erlang4j.exception.invalidReplayException";
	public static final String wrappedExceptionKey = "erlang4j.exception.wrappedException";
	public static final String expectedServerNameOrPidException = "erlang4j.exception.expectedServerNameOrPid";
	public static final String missingParameterException = "erlang4j.exception.missingParameterException";
	public static final String cannotChangeStateTwice = "erlang4j.exception.cannotChangeStateTwice";
	public static final String cannotChangeStateToIllegalState = "erlang4j.exception.cannotChangeStateToIllegalState";
	public static final String cannotGetKeyFromInvalidBinding = "erlang4j.exception.cannotGetKeyFromInvalidBinding";
}
